"""
CommaSeparatedListOutputParser 是 LangChain 提供的一个专门用于解析逗号分隔列表输出的解析器。
主要功能
专门解析逗号分隔的列表：将模型输出的逗号分隔字符串转换为 Python 列表
自动处理格式：能够处理多种常见的列表格式输出
"""
from langchain_core.output_parsers import CommaSeparatedListOutputParser
from langchain_core.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate

from models import get_ds_model_client

messages = ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template("你是一个专业的程序员"),
                                             HumanMessagePromptTemplate.from_template("{input}")])
client = get_ds_model_client()
parser = CommaSeparatedListOutputParser()
chain = messages | client | parser
print(chain.invoke({"input": "列出Python的三个主要版本, 用逗号分隔"}))
print(chain.invoke({"input": "列举三个常见的机器学习框架, 用加号分隔"}))
"""
输出：
['Python 1.x', 'Python 2.x', 'Python 3.x']
['TensorFlow+PyTorch+Scikit-learn']
"""